#include <iostream>
#include <string>

class View
{
public:
   View()
   {mVal="";}
   
   View(std::string val)
   { mVal = val; }
   
   static View* create()
   { return new View; }
   static void destroy(View* view)
   { delete view; }

   std::string mVal;
      
protected:
   ~View()
   {;}
   

};


void doSomething(float val, const View& view)
{
   std::cout << val << view.mVal << std::endl;
}


int main()
{
   View* my_view = View::create();
   doSomething(10.0, *my_view);
   
   doSomething(20.0, std::string("my val"));

   return 0;
}
